{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "55f95cff",
   "metadata": {},
   "source": [
    "# Input Update Benchmark Notebook\n",
    "This notebook runs the input update benchmark for ParquetDB\n",
    "across various input data types and row counts, then plots the results.\n",
    "\n",
    "\n",
    "---\n",
    "\n",
    "## Benchmark Details\n",
    "\n",
    "- **Data Generation:**  \n",
    "  - 1,000,000 rows &times; 100 columns of integers (0–1,000,000).  \n",
    "  - Integers chosen as a basic primitive type—benchmark times here represent a **lower bound** on update performance; more complex or larger types will incur higher costs (due to larger byte sizes).\n",
    "\n",
    "- **Parquet Normalization Settings (defaults):**  \n",
    "  - **Row groups:** minimum 50,000–100,000 rows per group  \n",
    "  - **File size cap:** maximum 10,000,000 rows per file  \n",
    "  - You can tune these settings (e.g. smaller row groups or larger file limits) to trade off update vs. read performance.\n",
    "\n",
    "---\n",
    "\n",
    "## System Specifications\n",
    "\n",
    "- **Operating System:** Windows 10  \n",
    "- **Processor:** AMD Ryzen 7 3700X 8‑Core @ 3.6 MHz (8 cores, 16 logical processors)  \n",
    "- **Memory:** 128 GB DDR4‑3600 MHz (4×32 GB DIMMs) \n",
    "- **Storage**: SATA HDD 2TB (Model: ST2000DM008-2FR102)\n",
    "\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d15a6c16",
   "metadata": {},
   "source": [
    "## 1. Setup\n",
    "Import required libraries and set up paths."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4679e232",
   "metadata": {},
   "outputs": [],
   "source": [
    "!pip install parquetdb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "68c6d745",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import time\n",
    "import shutil\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.ticker as ticker\n",
    "from mpl_toolkits.axes_grid1.inset_locator import inset_axes\n",
    "import pyarrow as pa\n",
    "from parquetdb import ParquetDB, config\n",
    "from parquetdb.utils import general_utils\n",
    "\n",
    "# Set up data directory\n",
    "bench_dir= os.path.join(config.data_dir, 'benchmarks')\n",
    "save_dir = os.path.join(bench_dir, 'parquetdb')\n",
    "os.makedirs(save_dir, exist_ok=True)\n",
    "db_path = os.path.join(save_dir, 'BenchmarkDB')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1b6f56de",
   "metadata": {},
   "source": [
    "## 2. Initialize Database\n",
    "Remove any existing database and create a fresh one with 1M rows of random data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "1a832dd7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[INFO] 2025-04-19 11:26:40 - parquetdb.core.parquetdb[205][__init__] - Initializing ParquetDB with db_path: Z:\\data\\parquetdb\\data\\benchmarks\\parquetdb\\BenchmarkDB\n",
      "[INFO] 2025-04-19 11:26:40 - parquetdb.core.parquetdb[207][__init__] - verbose: 1\n"
     ]
    }
   ],
   "source": [
    "# Remove existing DB\n",
    "if os.path.exists(db_path):\n",
    "    shutil.rmtree(db_path)\n",
    "\n",
    "# Initialize and populate\n",
    "db = ParquetDB(db_path=db_path)\n",
    "data = general_utils.generate_pydict_data(\n",
    "    n_rows=1_000_000, n_columns=100, min_value=0, max_value=1_000_000\n",
    ")\n",
    "db.create(data)\n",
    "del data, db\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2caa07e6",
   "metadata": {},
   "source": [
    "## 3. Run Input Update Benchmark\n",
    "Benchmark update performance for different input types and row counts."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fb1e397b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Input=pydict, rows=1, time=9.9136s\n",
      "Input=pylist, rows=1, time=9.4008s\n",
      "Input=pandas, rows=1, time=9.5054s\n",
      "Input=table, rows=1, time=9.4650s\n",
      "Input=pydict, rows=10, time=9.5665s\n",
      "Input=pylist, rows=10, time=9.4898s\n",
      "Input=pandas, rows=10, time=9.8546s\n",
      "Input=table, rows=10, time=9.0859s\n",
      "Input=pydict, rows=100, time=9.4329s\n",
      "Input=pylist, rows=100, time=10.9167s\n",
      "Input=pandas, rows=100, time=9.4779s\n",
      "Input=table, rows=100, time=9.9870s\n",
      "Input=pydict, rows=1000, time=9.5006s\n",
      "Input=pylist, rows=1000, time=9.0437s\n",
      "Input=pandas, rows=1000, time=8.5357s\n",
      "Input=table, rows=1000, time=9.2891s\n",
      "Input=pydict, rows=10000, time=8.3776s\n",
      "Input=pylist, rows=10000, time=9.3234s\n",
      "Input=pandas, rows=10000, time=9.1188s\n",
      "Input=table, rows=10000, time=9.2263s\n",
      "Input=pydict, rows=100000, time=9.9234s\n",
      "Input=pylist, rows=100000, time=11.9785s\n",
      "Input=pandas, rows=100000, time=9.4006s\n",
      "Input=table, rows=100000, time=9.3413s\n",
      "Input=pydict, rows=1000000, time=14.9886s\n",
      "Input=pylist, rows=1000000, time=32.1442s\n",
      "Input=pandas, rows=1000000, time=9.5906s\n",
      "Input=table, rows=1000000, time=10.9055s\n",
      "Benchmark results saved to Z:\\data\\parquetdb\\data\\benchmarks\\parquetdb\\parquetdb_input_update_benchmark.csv\n"
     ]
    }
   ],
   "source": [
    "# Benchmark parameters\n",
    "row_counts = [1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]\n",
    "input_types = ['pydict', 'pylist', 'pandas', 'table']\n",
    "\n",
    "# Storage for results\n",
    "results = {\n",
    "    'input_data_type': [],\n",
    "    'n_rows': [],\n",
    "    'update_times': []\n",
    "}\n",
    "\n",
    "for n in row_counts:\n",
    "    # generate update table\n",
    "    table = general_utils.generate_table_update_data(\n",
    "        n_rows=n, n_columns=100\n",
    "    )\n",
    "    for itype in input_types:\n",
    "        db = ParquetDB(db_path=db_path)\n",
    "        # prepare input\n",
    "        if itype == 'pydict':\n",
    "            update_data = table.to_pydict()\n",
    "        elif itype == 'pylist':\n",
    "            update_data = table.to_pylist()\n",
    "        elif itype == 'pandas':\n",
    "            update_data = table.to_pandas()\n",
    "        else:\n",
    "            update_data = table\n",
    "\n",
    "        # run update\n",
    "        start = time.perf_counter()\n",
    "        db.update(update_data)\n",
    "        elapsed = time.perf_counter() - start\n",
    "        # record\n",
    "        results['input_data_type'].append(itype)\n",
    "        results['n_rows'].append(n)\n",
    "        results['update_times'].append(elapsed)\n",
    "\n",
    "        print(f'Input={itype}, rows={n}, time={elapsed:.4f}s')\n",
    "        del update_data, db\n",
    "\n",
    "# save results\n",
    "df = pd.DataFrame(results)\n",
    "csv_path = os.path.join(save_dir, 'parquetdb_input_update_benchmark.csv')\n",
    "df.to_csv(csv_path, index=False)\n",
    "print('Benchmark results saved to', csv_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08db830d",
   "metadata": {},
   "source": [
    "## 4. Load and Preview Results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "e438cb46",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>input_data_type</th>\n",
       "      <th>n_rows</th>\n",
       "      <th>update_times</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>pydict</td>\n",
       "      <td>1</td>\n",
       "      <td>9.913610</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>pylist</td>\n",
       "      <td>1</td>\n",
       "      <td>9.400836</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>pandas</td>\n",
       "      <td>1</td>\n",
       "      <td>9.505378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>table</td>\n",
       "      <td>1</td>\n",
       "      <td>9.465031</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>pydict</td>\n",
       "      <td>10</td>\n",
       "      <td>9.566514</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  input_data_type  n_rows  update_times\n",
       "0          pydict       1      9.913610\n",
       "1          pylist       1      9.400836\n",
       "2          pandas       1      9.505378\n",
       "3           table       1      9.465031\n",
       "4          pydict      10      9.566514"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "csv_path = os.path.join(save_dir, 'parquetdb_input_update_benchmark.csv')\n",
    "df = pd.read_csv(csv_path)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40ec9053",
   "metadata": {},
   "source": [
    "## 5. Plot Update Times\n",
    "Plot update times vs. number of rows for each input type, including a log-log inset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "c16ca83e",
   "metadata": {
    "tags": [
     "nbsphinx-thumbnail"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\lllang\\AppData\\Local\\Temp\\ipykernel_22152\\1546944237.py:60: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n",
      "  plt.tight_layout()\n"
     ]
    },
    {
     "data": {
      "image/png": "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tgNK48aNky07fvz4JPunSJEiSrFixZTOnTunuC98fX2d55+8efMmOec5zu3du3dX7t69m+r+chwXOp0uyfksf/78ipeXV5L1de7cWTGZTGnufyHEo5EWbyHEE2HgwIFs2rSJ5s2bo1arUavVlClThnHjxnHgwIFUW8T69OnDr7/+SsOGDfH19cVisVC6dGkmTZrErl270mylCQgIYPfu3XTp0oVChQoRHR3N5cuXuXz5coafZyxQoAB79+5l2bJlvPrqqxQuXBiTyYTJZKJw4cK8+uqrLFu2jL179ybruCgly5cv56uvvqJq1apYLBa8vb2pXbs2ixYtIiwsLMXnsNVqNYsWLWLRokXUqlULT09PLBYLzz//PPPmzWPZsmVp1rl06VKmT59OpUqVcHd3x2q1UrFiRT7//HP27duHXq9PddmM7Mu3336bM2fOMHz4cCpXroy7uztRUVHo9XqqVavGO++8w5YtW5K1OmXEvXv3uHnzpvNfVFQUfn5+1K5dm3HjxnH69OlUey329fXl559/Zv369XTu3JmiRYuSmJhIfHw8hQoVomnTpnz++ecp3i77qDQaDbNnz2bv3r288cYbFC1aFLPZjKIolCtXjj59+rB69eosrzc76XQ6Nm/ezOjRoyldujQ6nQ5FUahRowZz585l3bp12d4btk6nY+XKlXTs2BGj0UirVq3YvHlzltbh5+fHtm3b+Pbbb6lfvz4+Pj4YDAaCg4N57bXX2LFjB1988UWW1plVXnjhBX7//Xc6depEUFAQNpsNHx8fOnXqxP79++nevXuW1FOtWjWOHz/Om2++SaFChbBYLPj5+dGzZ0+OHj2a7K6mBzVr1ow9e/bQqlUrAgICsFqtFClShI8++ogjR4489NxatmxZjh8/ztdff03Tpk0JCgoiJiYGRVF49tln6dixI/Pnz2fVqlXJlh0xYgQzZsygWrVq6HQ6rl69yuXLl1PtGDAmJsZ5/omOjsbX15eyZcvSuXNnpk6dSnh4OIsWLSIwMPCh+81sNic5n928edM5HnuXLl3YsGEDK1asQKfTPXRdQojMUylKFvbyIIQQj9HChQvp1asXxYoVk55YsT/jGxYWRs+ePVm4cKGrwxFCiMfq0qVLlChRArCPOFC8eHHXBiSEEPeRFm8hhBBCCCGEECIbSeIthBBCCCGEEEJkI0m8hRBCCCGE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4dUryL1uIlvG7U3pWy+DZeEZdRTpb39G2lP/UegWEZGYaHbwvvbaa9l77725+OKLWblyZWvWJBJTDz30EH379sXr9TJs2DC+++67WJe03d58803GjBlDWloahmGwatWqWJe03e6++272339/EhMT6d69O6eeemqna8cDDzzAHnvsgc/nIyUlhZEjR7J06dJYl9Uil156KYZh8Oijj8a6lO1y66234na7Of7443G73RiGwf777x/rspplzZo1nHrqqaSmppKQkMDQoUNZv359rMuKufCaP8i9/mK2jNmL0jdfhEgEz+FHkv5/S+j29Bu499wn1iWKiMgOrNlDzePi4pg3bx4XXXQRQ4YM4eSTT2bo0KEkJiY2+Lpzzz23uW8p0uZefvllrr/+ep5++mn2228/7rvvPsaNG8f//vc/kpKSYl1ekxUXF3PYYYdx3HHHccUVV8S6nGb55JNPuOKKKxg6dCiBQIDrrruOI488kh9++AGns9m/utpV3759+ec//8mgQYMIBAI8+OCDjBs3jhUrVtCtW7dYl7fd3nvvPT777DN69uwZ61KaZa+99uLqq69m1KhRuFwuXC5XrEvablu3bmXYsGEcccQRzJs3j5SUFH7++Wc8Hk+sS4uZ8LpVFD12DyVvvgjhMACe4eNIvHIq7r2Hxrg6ERGRqBZ9el21ahWbN2+mpKSEF154gRdeeKHB/Q3DUPCWDu2BBx7gkksuqThPZ8yYQVZWFi+//DKXXHJJjKtrunPOOQeAH3/8McaVNN+HH35Y7fEzzzzDgAED+Pnnn9lrr71iVNX2OfHEE6s9vv/++3nmmWf48ccfGT58eIyqap7Nmzdz6aWXMnv2bI455phYl9MsTqeT1NRUsrKyOmXoBrj33nvp378/Tz/9dMW2gQMHxrCi2AmvX03RY/dS8sasysB96Jho4N7nwBhXJyIiUl2zh5p///33jBgxgs8++wwAt9tNz5496dOnT71fvXv3brXCZcf04osvMmnSJPbff388Hg+GYTBz5swGX/Pll18yfvx4UlJSSEhI4M9//jOvvfZarf2CwSDffPMNo0ePrtjmdDqrneedoR3tpb3bkJ+fD0BaWlpLS6/Qnm0IBoM8/fTTpKamMmRI686k3B7tmDBhAlOmTGn12su1Rxt+/fVXJkyYwG677caECRPYtGlTK7ei7dvx7rvvsu+++3LSSSeRmZnJ0KFDefPNN1u9HR1ZeMMa8qZezpZRe1Ly6r8gHMYzbBTpry2g28x3FbpFRKRDanaP9y233EJRUREDBgzgmWeeYfjw4Zhms3O8SJNMnTqV1atXk56eTo8ePVi9enWD+y9YsIBx48bh9Xo5/fTTSUxM5I033uC0005j7dq1XHvttRX75uTkEIlE6N69e7VjZGZmsmLFik7TjvbSnm2IRCL85S9/Yfz48ey0006dqg2LFi3iyCOPpLS0lKysLObOnduqfzxoj3Y8+uijFBcXt+l51tZtOPDAA5kxYwZbtmxh4MCB3H777YwcOZJvvvmmVYdpt3U7Vq5cyRNPPMGNN97I1KlTmT9/PqeccgoLFizgsMMOa7V2dESRjesofPK+aNgOhQBwH3w4iVdOxbP/ITGuTkREpBF2M2VmZtqmadpfffVVcw/RaeTn59uAnZ+fH+tS6hUMBu233nrLDgaDsS6lTc2dO9detWqVbdu2fffdd9uA/dxzz9W5bygUsgcOHGh7PB77m2++qdiel5dn77zzzrbb7a44lm3b9vr1623A/uKLL6od59JLL7XHjh3badpR1Q8//GAD9sqVK1u1fttuvA1Vz8mWtMGyLHvixIn24MGD7S1btrRrG6pqbhtKSkrs5cuX259//rl94YUX2gMGDLCzs7M7TTt++eUXOzMzs9o51LdvX/uRRx7pNG0oV/Wc3LJli+31eu3XX3+9U7XD5XLZw4YNq7bt2GOPtc8666xWbUdHEt603s675Sp7/a6J9voBHnv9AI+dfeZY27/001iX1iI7yv/b0nnonJSOpjOck9uTE5vdRV1SUkJCQgL77bdfi8O/SFONHj2avn37Nmnfjz/+mBUrVnDmmWfypz/9qWJ7cnIyN910E8FgkOeff75ie3p6Og6Hg82bN1c7zpYtW8jKymqV+su1ZTvaS3u0wbZtLrvsMubNm8f8+fPJyMhorfKB9mlDXFwcgwYNquhxNU2T5557rrWaALRtOz7//HOys7MZNGgQTqcTp9PJ6tWrufLKK6u9viO3oS4ZGRn069ev1VflaOt2ZGVlscsuu1Tbtttuu7FmzZoW197RRLZsJP/2a9k8YjeKX3gCgkHcBwyj20tzSH9pDp4DDo11iSIiIk3W7KHmgwYN4tdffyUSieBwOFqzJpFWsXDhQgDGjh1b67lx48YB0Zmzy7ndbvbZZx/mz5/P0UcfDUA4HGbhwoXccccdbV9wPba3HR1Rc9pg2zaTJ0/m/fff55NPPon5HBGt9XOwbZtAINCqtW2P7W3H8ccfX2vZrXHjxnH++eczYcKEtiu0Aa3xs8jNzWX16tX069evtctrsua04+CDD+b333+vtu1///tfk8N+ZxDJ3kTRU/+g+OVnIOAHwL3/wSReOQ33QSMwDCPGFYqIiGy/Zgfvc889l2uvvZZ33nmHE044oTVrEmkVy5cvB2Dw4MG1nsvKysLn81XsU+7qq6/mwgsvZL/99mPffffl/vvvx+l0cuaZZ7ZLzXVpTju2bdvGmjVrKq5N//nnn8nLy6NPnz6tfn1xUzSnDZMnT+bf//437777LnFxcRUTYaWlpeF2u9u+6Bqa04brr7+eY489lp122olt27bx+OOPs27dOk466aR2qbku29uOlJQUUlJSqu3ncrno0aMHgwYNatNa69Ocn0X5cnSbN29myZIl/O1vf6NXr16MHz++XWquS3N/Rx1yyCH84x//4LjjjmPevHm8++67Hf6Pb00RydlM0dP/pOSlp7H9pQC49v0zSVdNw33wSAVuERHp1JodvKdMmcL777/PpEmTyMrK4qCDDmrNukRarHwW7OTk5DqfT0pKqtin3Jlnnkl2djY33XQTmzdvZv/992fOnDkxXcO7Oe145513qvVGHnXUUQA899xznH/++W1TaAOa04YnnngCgEMPrT6cdMGCBYwYMaL1i2xEc9qwYcMGTj/9dLZs2UJaWhpDhw5l0aJF7Lbbbm1eb32a046OpjltWLt2LWeffTbZ2dlkZWUxfPhwXnjhBeLj49u83vo0px0HHngg//nPf7j55puZOnUqO++8M//5z384+OCD27zethLZmh0N3C8+WRm49zkwOmnasNEK3CIi0iU0O3jfeeedHHTQQXz99dcMGzaMYcOGccABB5CYmNjg6/72t7819y1F2sWVV17JlVdeGesyWuT888+PScBuTbZtx7qEFnvhhRdiXUKbWLVqVaxL2G6vvPIKoVCI2bNnM378+E67jjfACSec0CVGmkW25VD8zAMUv/AEdmkJAK69h5J45TQ8h41R4BYRkS6l2cH71ltvrfhP0bZtFi1axOLFixt9nYK3tJfyXqT6eu8KCgpITU1tz5KapSu0Q23oOLpCO7pCG6DrtGN7WblbKZrxAMWznsAuKQbANWS/aOAeMU6BW0REuqRmB+/DDjtM/zlKh1Z+3eTy5ctrzb6/adMmioqKOOCAA2JR2nbpCu1QGzqOrtCOrtAG6DrtaCorbxtFMx6keNbj2MVFALj22IfEq6bhOfxIfaYQEZEurdnLiS1cuJAFCxZs95dIexk+fDgAH330Ua3n5syZU22fjqwrtENt6Di6Qju6Qhug67SjMVZ+LgX/vJXNw3eh6Im/YxcX4dx9b9Keep30t/+Ld+R4hW4REenymh28RTq6UaNGMWDAAF5++WW+/fbbiu35+fncdddduN1uzj333NgV2ERdoR1qQ8fRFdrRFdoAXacd9bEK8ih4aDqbD9uFosfuwS4qxLnrEFIff5WMdz7HO/poBW4REdlhNHuouUgszJgxo2IugR9++KFiW/l6uMOGDWPixIkAOJ1OZsyYwbhx4zjssMM4/fTTSUxM5I033mD16tXcf//9MVvDtyu0o7E2HHTQQWRlZXXqNnSGn0N5zZ29HV2hDeU1d4V2tIRVmE/xzEcp+tcj2AV5ADh33oPEK6fiHXschqm/+YuIyA7Ilkbl5+fbgJ2fnx/rUuoVDAbtt956yw4Gg7EupU2dd955NlDv13nnnVfrNUuXLrWPOOIIOykpyY6Li7MPOOAA+5VXXmn/4qvoCu1orA3nnHNOrXOys7WhM/wcbLtrtKM92tAevye7ws+iuSIF+XbBI3fZG/bJstcP8NjrB3jszeP2sUvef922IpFYl9fh7Cj/b0vnoXNSOprOcE5uT040bLvxNXsuuOACAHr06MGdd95Zbdv2MAyDZ599drtfF2sFBQUkJyeTn58f0/WcG9JVlsmRrkPnpHQ0OifbhlVUSPGsxyl69iHsvG0AOAftSuIVN+Mdf5J6uOuh81E6Gp2T0tF0hnNye3Jik4aaz5w5E8Mw2GWXXSqCd/m2JuT2iv06a/AWERGR6qziIopfeILiGQ9i5W4FwDlgZ3xX3EzcUSdjOBwxrlBERKTjaFLwPvfcczEMgx49etTaJiIiIjsOq6SY4heepHjGA1jbcgBw9B9M4hU3EXf0qQrcIiIidWhyj3dTtomIiEjXZJWWUPLS0xQ9/U+srVsAcPQdGA3cx5yG4dR8rSIiIvVp8v+SI0eOpFu3bvznP/9py3pERESkA7H9pRS//AxFT/0DK2czAI4+A0i8/EbijjtDgVtERKQJmvy/5cKFCyuWBhIREZGuzfaXUvzvZyl66n6s7E0AOHr3KwvcZ2J00IluREREOiL9mVpEREQq2AE/xa/8i6In78PashEAR68++C6/kfgTzlbgFhERaQYFbxEREcEOBCh57TkKn7wPa9N6ABw9e+O77HriTzoXw+2OcYUiIiKdl4K3iIjIDswOBCh5/XkKH7+3InCbWb1InHwD8Sefp8AtIiLSChS8RUREdkB2MEjJ689T9Pi9RDauA8oC96V/Jf6U8zE8nhhXKCIi0nVsV/AuLS1l1qxZLXrDc889t0WvFxERkeazQyFK3pgVDdzr1wBgdu9J4iXXEX/aBAyPN8YVioiIdD3bFbwLCgqYMGFCs9/MMAwFbxFpE/369cPj8RAXF0dpaSkTJkzghhtuaNca3nvvPd577z2efPJJFi5cyFVXXcW3337b7ONt3ryZY445hv/+9784tWSTtJAdClHyfy9S9Ng9RNatBsDMyMJ3yXUknHGhAreIiEgb2u5PcrZtt0UdIiIt9uqrr/KnP/2J9evXs/vuuzNy5EgOOOCAdnv/G2+8kffee6/Vjte9e3cOPvhgZs2axQUXXNBqx5Udix0OU/rWSxQ+dg+RNSsBMNO747vkLyScMRHDGxfjCkVERLq+7Qre6enpfPHFF21Vi4hIq+jVqxe77rorq1ev5oADDuD333/nkksuYcuWLZimya233srxxx/P008/zVdffcXTTz/Nzz//zB577MGcOXMYO3Yst99+OwBTp05lypQpzJ8/H7fbjdPpZMmSJXi91XsHFy1aREpKCn379q2zphdeeIH77rsPgN69e/P000/Tq1cvQqEQV155JfPmzSMtLY1DDjmEZcuWsXDhQgDOOOMMpkyZouAt280Ohyl95xUKH7mLyJo/ADC7ZeKbdC3xZ16EGRcf4wpFRER2HNsVvB0OR70fKkVEOopff/2VrVu3MmLECADOOussLrjgAiZNmsTy5cv585//zD777MPo0aO55557AJg7dy4HHXQQ8+bNY+zYscydO5d7772X7777jvnz5/PTTz9hmib5+fm465jleeHChRx44IF11vPjjz9y3XXXsWzZMnr16sWdd97JxIkT+eCDD3j66adZvnw5P/30EwDjx4+v9tr99tuP77//noKCApKSklrxuyRdlR2JUPruq9HAvep3AMy0DHwXX0P8WRdjxifEuEIREZEdjxnrAppi/fr1PPjgg4wdO5Y+ffrgdrvJysripJNOYunSpXW+pqCggGuuuYa+ffvi8Xjo168f1113HUVFRe1cvYi0l9NOO43ddtuN3XffnSuuuIKMjAwKCwv5+uuvufDCCwEYPHgww4YNY9GiRQwYMACAP/74g3nz5nH33Xfz8ccfU1RUxM8//8wBBxzAgAEDCIfDXHDBBTz//POEQiFMs/avznXr1tG9e/c661qwYAFHHHEEvXr1AuCyyy7j448/JhKJMH/+fM4++2xcLhcul4vzzjuv2mudTiepqals2LChNb9V0gXZkQgl77xC9hH7kHftBURW/Y6Z2o3Ev95J5sJf8F10tUK3iIhIjHSK4P3II49w9dVX88cffzB27FiuvfZahg0bxttvv83BBx/Mq6++Wm3/4uJihg8fzgMPPMCuu+7K1VdfzS677ML999/PyJEj8fv9MWqJiLSlV199lV9++YWPPvqIG264gR9++KHO/QzDqLg/evRoPvjgA5YvX87w4cOxbZs33niDgw46CKfTSXJyMj/++CNnnnkmv/76K3vttRe///57rWPGx8c3+XdL1fdvynN+v5+4OF2HK3WL9nC/Rvb4/ci7+nzCf/wPIyWNxOumk/nJbyROuhYzwRfrMkVERHZonSJ4H3DAASxcuJDff/+dGTNmcPfdd/P666+zYMECHA4Hl156KYFAoGL/v//973z77bdcf/31zJkzh3vuuYc5c+Zw/fXX8+WXX/LAAw/EsDUi0tZGjx7NpZdeytSpU0lMTGTfffflueeeA+D3339n8eLFHHbYYRX73nfffRWTsI0cOZJbbrmF0aNHA5CdnU1xcTFjx47lrrvuol+/fvz888+13nOvvfbit99+q7Oeww8/nA8//LCi1/rJJ59k1KhROBwORo4cycsvv0woFCIUCtVasnHz5s0YhkHv3r1b55sjXYZtWZS+/zrZR+1P7lXnEv79V4zkVBKvuZXuC38l8ZLrFLhFREQ6iE4RvE888USGDx9ea/uhhx7K4YcfTm5ubkXPlm3bzJgxA5/Px7Rp06rtP23aNHw+HzNmzGiXukUkdqZNm8bixYtZtmwZL730Eq+++ip77703J598MjNmzKBPnz4AjBo1ijVr1lQE7TFjxrB69WpGjRoFwNq1axkz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ukOhtJHzNIiIiIiIiKwWE+8arKyk22C3sjEGKFXITj6F1CNbYe/pb1SvdnaHnbsv8u7dwK2E9bj1Ywxyb1+R6rW+LeAVHAnPTm9C7exuidMgIiIiIiKyaky8a6jyJN2OD35Hv2/7Q6EvBACcXTzIpI3CRg3nxh2Rcfa/gNADAGzsnVG7Yzi8giPh5B8AhUIhe/xERERERETPCibeNdTjkm4AsMtNg6oor8w2oqgAGb8lAABcmnSBV3AkPNoNgI3GQYYoiYiIiIiIiIl3DTXg/3col4NnUAR8+30IhzqNZOmPiIiIiIiI/qCs6gCoYvr76zDA31WWvrx7jWLSTUREREREZCFMvGswOZNvIiIiIiIisgwm3jVcWcl397pOlRsMERERERERmWDibQX6++vQv76zUdkAf1d0q+ts5ggiIiIiIiKqLEy8rcSf6zmjecEtAMVJd39/XRVHRERERERERAB3NbcqzQpTMbFnANRqNQBA7ewOpdoO+oJcs8co1XZQO7tXVohERERERETPHCbeVszO3RdtFp9HQeZds23Uzu6wc/etxKiIiIiIiIieLUy8rZyduy8TayIiIiIioirENd5EREREREREFsTEm4iIiIiIiMiCmHgTERERERERWRATbyIiIiIiIiILYuJNREREREREZEFMvImIiIiIiIgsiIk3ERERERERkQUx8SYiIiIiIiKyICbeRERERERERBbExJuIiIiIiIjIgph4ExEREREREVkQE28iIiIiIiIiC2LiTURERERERGRBTLyJiIiIiIiILEhV1QHUBEIIAEBmZmYVR2JeQUEBcnJykJmZCbVaXdXhEHFMUrXDMUnVCccjVTcck1Td1IQxacgPDfliWZh4l0NWVhYAwMfHp4ojISIiIiIiouokKysLLi4uZbZRiPKk5884vV6PlJQUODk5QaFQVHU4pcrMzISPjw+uX78OZ2fnqg6HiGOSqh2OSapOOB6puuGYpOqmJoxJIQSysrLw3HPPQaksexU3Z7zLQalUom7dulUdRrk4OztX24FJzyaOSapuOCapOuF4pOqGY5Kqm+o+Jh83023AzdWIiIiIiIiILIiJNxEREREREZEFMfG2EhqNBlFRUdBoNFUdChEAjkmqfjgmqTrheKTqhmOSqhtrG5PcXI2IiIiIiIjIgjjjTURERERERGRBTLyJiIiIiIiILIiJNxEREREREZEFMfGuxn766Sf07t0brq6u0Gq1aNeuHb766qsn6iMvLw8zZ85Eo0aNYGdnh+eeew4jRoxAamqqhaIma/Y0Y1IIgd27d2PkyJFo2bIlXFxc4ODggFatWiE6Ohq5ubkWjp6skRzvkyWlpaXB29sbCoUCvXr1kjFSehbINR5TU1MxduxY6W+3m5sb2rdvjxUrVlggarJmcozJlJQUjBkzBk2bNoVWq4Wnpyc6deqEf//73ygqKrJQ5GSNNm7ciHfeeQcBAQHQaDRQKBRYv379E/ej1+uxbNkytGjRAvb29vDw8EB4eDiuXLkif9Ay4uZq1dT+/fsREhICOzs7DB48GE5OTti+fTuSk5Mxf/58jB8//rF96PV69O7dG3FxcWjXrh2CgoJw8eJF7NixA/Xr18fRo0fh4eFRCWdD1uBpx2Rubi7s7e2h0WjQtWtXtGjRArm5uYiLi8PFixfRpk0bJCQkwMHBoZLOiGo6Od4nH/Xmm2/im2++QXZ2NkJCQhAbG2uByMkayTUeT548iZ49eyItLQ19+vRBkyZN8ODBA5w9exa2trbYtWuXhc+ErIUcY/LKlSsIDAzEvXv3EBISgpYtWyIzMxM7d+7ErVu3EBERgZiYmEo4G7IG9erVQ3JyMtzd3aHVapGcnIyYmBhEREQ8UT/Dhw/HmjVr0KxZM/Tp0wcpKSn46quv4OjoiKNHj6JRo0aWOYGnJajaKSgoEP7+/kKj0YgTJ05I5enp6eL5558Xtra24urVq4/tZ926dQKACA8PF3q9XipfsWKFACBGjBhhifDJCskxJvPz88Xs2bPF/fv3Tcr79u0rAIh58+ZZInyyQnK9T5a0bds2AUB88sknAoAICQmROWqyVnKNx4yMDOHr6ys8PDzEqVOnSn0eovKQa0yOHDlSABCLFy82Kk9LSxO+vr4CwBO/19Kza8+ePdJ4mTNnjgAgYmJinqiP+Ph4AUB06dJF5OXlSeW7du0SAETPnj3lDFlWvNS8GoqPj8fly5fxxhtv4MUXX5TKXVxc8OGHHyI/Px8bNmx4bD+rV68GAMyZMwcKhUIqf+edd9CgQQN88cUXePjwoezxk/WRY0yq1Wp89NFH0Ol0JuVTpkwBAPz444+yx07WSa73SYM7d+5g5MiRGDJkCPr06WOBiMmayTUely9fjmvXrmHu3Llo2bKlSb1KpZIzbLJico1Jw6W7vXv3Nip3dXVFp06dAAB3796VL3Cyai+//DL8/Pyeqg9DfjNr1izY2tpK5a+88gq6du2KH374AdeuXXuq57AUJt7VUEJCAgCgZ8+eJnUhISEAHp+g5Obm4tixY2jcuLHJAFcoFOjRoweys7ORmJgoT9Bk1eQYk2VRq9UA+KGSyk/uMfnuu+/CxsYGS5YskSU+erbINR63bNkChUKB0NBQnD9/HsuWLcO8efPw7bffIj8/X9aYybrJNSabN28OACZLHNLT03Ho0CF4eXmhadOmTxktUfklJCRAq9WiY8eOJnVyfCa1JH7KrYYuXrwIAKWuT/Dy8oKjo6PUxpzLly9Dr9ebXeNgKL948SI6d+78lBGTtZNjTJZl3bp1AEr/gEBUGjnH5MaNG/H1119j586d0Ol0yMjIkDVWsn5yjMf8/HycPn0aHh4eWLZsGaKioqDX66X6Bg0aYOfOnWjRooW8wZNVkus9cuLEifjuu+8wduxYxMbGGq3xdnBwwI4dO2Bvby97/ESlyc7Oxs2bN9G8eXPY2NiY1JfMb6ojznhXQ4YPfS4uLqXWOzs7P/aDYXn6KNmOqCxyjElzdu/ejVWrVqFJkyaIjIyscIz0bJFrTKakpGD06NEIDw/Hn//8Z1ljpGeHHOPx/v37KCoqwr179zBz5kzMmzcPt2/fxo0bNzBt2jQkJSWhb9++vAMElYtc75Genp44cuQIevXqhdjYWMybNw8rV65ERkYG3n77bbRq1UrWuInKUtPzGybeRFRlfvrpJ4SFhcHFxQVbt26FRqOp6pDoGTNs2DCo1WosXbq0qkOhZ5xhdruoqAjvvfcexo8fj9q1a8Pb2xszZ87EwIEDkZycjG3btlVxpPQsuXTpEjp27Ig7d+7gwIEDyMrKwvXr1/GPf/wDs2bNQvfu3XlLMaJyYuJdDRm+xTH3bU1mZqbZb3qepI+S7YjKIseYfFRiYiJ69uwJpVKJuLg4NGvW7KnjpGeHHGNyw4YN2L17Nz799FO4u7vLHiM9O+T8uw0Ar732mkm9oYx7s1B5yPV3OyIiAsnJyfjuu+/QqVMnODo6om7dupg8eTJGjRqFI0eOYPPmzbLGTmROTc9vmHhXQ2WtT7h16xYePHjw2PvTNWjQAEql0uwah7LW/hA9So4xWVJiYiJ69OgBvV6PuLg4tGnTRrZY6dkgx5g8ceIEAGDgwIFQKBTSo379+gCAuLg4KBQKox2BiUojx3jUarXw9vYGULxj9KMMZbwbCZWHHGMyKysLhw4dQpMmTeDl5WVSHxwcDOCP91IiS9NqtahTpw6SkpJKvdKiuuc3TLyroaCgIADADz/8YFIXFxdn1MYce3t7tG3bFufPn0dycrJRnRACe/bsgVarRUBAgExRkzWTY0waGJLuoqIixMbGIjAwUL5A6Zkhx5hs3749IiMjTR5hYWEAgLp16yIyMhL9+/eXOXqyNnK9R3br1g0A8Ntvv5nUGcrq1atX0TDpGSLHmDTspG/udmF37twBAC4To0oVFBSE7OxsHDp0yKTOMLa7dOlS2WGVT1XfSJxMFRQUiAYNGgiNRiNOnDghlaenp4vnn39e2NraiqSkJKk8JSVFnD17VqSnpxv1s27dOgFAhIeHC71eL5WvWLFCABAjRoyw9KmQlZBrTCYmJgpXV1fh6OgoDh48WEnRkzWSa0yWJikpSQAQISEhFoicrJFc4/HQoUMCgGjWrJlIS0uTym/evCm8vb2FUqkU58+ft/DZkDWQa0w2btxYABCrV682Kk9LSxMvvPCCACD27NljyVMhKzVnzhwBQMTExJRaf+fOHXH27Flx584do/L4+HgBQHTp0kXk5eVJ5bt27RIARM+ePS0Z9lNh4l1NxcfHC7VaLZycnMTw4cPFuHHjhJ+fnwAg5s+fb9R26NChpQ7coqIiERISIgCIdu3aiUmTJonQ0FChUChE/fr1RWpqaiWeEdV0Tzsm7927J3Q6nQAgevXqJaKiokweixYtqtyTohpNjvfJ0jDxpoqQazyOGzdOABA+Pj7ivffeE8OHDxe1a9cWAER0dHQlnQ1ZAznG5K5du4RKpRIARPfu3cWECRNEZGSk8PDwEABEaGhoJZ4R1XSrV68WQ4cOFUOHDhUvvfSSACA6duwolZX8gicqKkoAEFFRUSb9DBs2TPqS8oMPPhBDhgwRtra2olatWtX6y0km3tXYsWPHRK9evYSzs7Owt7cXbdu2FZs3bzZpV9Yf8NzcXDF9+nTh7+8vbG1thZeXlxg2bJi4detWJZwBWZunGZOGZKash5+fX+WdDFkFOd4nH8XEmypKrvEYExMjAgIChIODg9BqtaJTp07i66+/tnD0ZI3kGJPHjx8XAwcOFHXq1BEqlUo4OjqKNm3aiGXLlonCwsJKOAuyFoZxZu4xdOhQqW1ZiXdRUZFYsmSJaNasmdBoNMLNzU2EhYWJS5cuVd7JVIBCCCFkvnqdiIiIiIiIiP4fN1cjIiIiIiIisiAm3kREREREREQWxMSbiIiIiIiIyIKYeBMRERERERFZEBNvIiIiIiIiIgti4k1ERERERERkQUy8iYiIiIiIiCyIiTcRERERERGRBTHxJiIiIiIiIrIgJt5ERETVRNeuXaFQKDB9+vSqDqVK5eTkYNq0aWjSpAns7e2hUCigUChw8uTJqg6NiIiqgY0bN+Kdd95BQEAANBoNFAoF1q9fL+tzJCUlYfjw4fDz84NGo4GnpyeCg4OxdevWCvXHxJuIiKq16dOnS4mXg4MDUlJSzLa9evWq1DYhIaHygiRZhYWFYfbs2Th37hwUCgU8PT3h6ekJtVpdruMNX2A8+tBqtfD398fgwYMRFxdn4bMgIiJLmTp1Kj777DMkJyejTp06sve/Z88eNG/eHF9++SXat2+P8ePHo3///sjPz8fevXsr1KdK5hiJiIgs5uHDh5gxYwZWrVpV1aGQhZw7dw7ff/89AGDLli0YNGhQhftSq9WoVauW9PO9e/dw5coVXLlyBVu2bMGwYcPw2WefQaFQPHXcRERUedasWYNGjRrBz88Pc+fOxZQpU2Tr+9q1axgwYAC8vb2xd+9e+Pr6GtUXFhZWqF/OeBMRUY2ybt06XLhwoarDIAs5ffo0AMDNze2pkm4A6NChA27duiU9cnNzkZiYiM6dOwMo/uC2bt26p46ZiIgq18svvww/P79yt09NTcXYsWPRsGFDaDQauLu7IzQ0FGfOnDFpGx0djczMTKxcudIk6QYAlapic9dMvImIqEbw8fFBy5YtUVhYiA8//LCqwyELycnJAQA4OjrK3reNjQ1at26Nb775Bm5ubgCAtWvXyv48RERUfVy+fBmtW7fG4sWL4e/vj1GjRqF3796IjY1Fu3btcOzYMamtEAJbt26Fm5sbunXrhp9//hkLFy7E/PnzsXfvXuj1+grHwcSbiIhqBKVSiTlz5gAAtm/fjuPHjz/R8SXXf1+9etVsu3r16pW6ScujxycnJ2P48OHw9fWFnZ0d/P39MXXqVGRnZ0vHnDlzBm+99RZ8fHxgZ2eHRo0aYfbs2SgoKHhsvPn5+Zg7dy5atmwJrVYLnU6HHj16YPfu3Y899syZMxgxYgQaNWoEBwcHODo6omXLlvjoo49w9+7dUo8xrKXv2rUrgOLXuGfPnqhduzaUSuUTb/iWm5uLxYsXo0OHDtDpdLCzs4Ofnx/efvvtUjdJMzx/REQEACA5OdlofbahXA46nQ6BgYEAgF9//dVsu4SEBAwcOBDe3t7SDEn37t0RExODoqIik/ajRo2CQqHAgAEDTOoKCgrg5OQEhUIBDw8PCCFM2oSEhEChUGDatGlG5Q8fPsT8+fPRvn176HQ6qNVqeHh4oGnTphg6dCi2b9/+pC8BEdEz4+2338bNmzcRGxuLuLg4zJ8/H59//jlOnDgBpVKJ4cOHS22TkpJw//591K9fX9q8bfz48Zg4cSJ69OiBgIAA3Lhxo2KBCCIiomosKipKABB+fn5CCCGCgoIEABEcHGzSNikpSQAQAMT+/fvN1iUlJZl9Pj8/PwFAxMTEmD1++/btwtXVVQAQzs7OwsbGRqrr3LmzyM/PF99//71wcHAQAISLi4tQKBRSm7CwsFKf23BuU6ZMEZ07dxYAhEqlkp7L8IiKijIb/z//+U+hVCqltg4ODsLW1lb6uU6dOuKXX34x+zoHBQWJcePGCQBCoVAInU4nbGxsynzOR924cUM0b95cek61Wi1cXFykn5VKpVi6dKnRMf/617+Ep6encHZ2ltp4enpKj9GjR5f7+Q2vY1BQkNk2r7zyigAgtFptqfVjx46V4lUoFMLV1dXo99ytWzeRmZlpdMz27dsFAOHm5ib0er1R3cGDB41+h6dOnTKqz8/Pl8ZLfHy8VJ6ZmSlatWplEotKpZLKDP9vEBE9i+bMmVPq320hhPjll18EAPHXv/611GMNf+9Onz4thBDiyJEjAoCwsbERjo6OIiYmRty/f18kJSWJ4cOHCwAiMDCwQnFyxpuIiGqUuXPnAgD279+P2NjYKokhMjISrVu3xq+//oqMjAxkZWVh6dKlsLGxwYEDBzBz5ky8+eab6Nu3L65evYr09HRkZmbio48+AlC8aVhZu6IuX74cx48fx8qVK5GVlYW0tDRpsxcAmDFjBr799luT49auXYtJkybBwcEBH3/8MW7evIns7Gzk5OQgMTER3bp1w82bN/Haa6/hwYMHpT634bK6SZMm4fbt27h//z6ys7Pxl7/8pVyvTVFRkbRuzsXFBRs3bsSDBw+Qnp6Oy5cv49VXX4Ver8eYMWOMZu8nTJiAW7duYcmSJQCKlxaUXJ9tKJdDWlqadMVEgwYNTOo/+eQTLFq0CAAwYsQIpKSkIC0tDRkZGVi0aBFUKhXi4+ONZkmAP3ZTv3fvHk6dOmVUt3//fgCAs7MzACA+Pt6o/tixY8jJyYFGo0H79u2l8iVLluDUqVOoVasWtm/fjocPHyItLQ15eXn4/fff8fnnn6Nnz55P+YoQEVmno0ePAgBu376N6dOnmzzOnTsHANK/hkvJi4qKMGvWLERERECn06FevXr47LPPEBgYiGPHjuHgwYNPHkyF0nUiIqJK8uiMtxBC9OvXTwAQL774otHMYmXNeDdr1kzk5uaaHDtkyBCpTY8ePUxmPYUQ0kx2ZGSkSZ1hphaAWLt2rUl9UVGR6NKlixRDSZmZmdLMeGxsbKnnVlBQIFq3bi0AiEWLFhnVGV5nAGLcuHGlHl8emzdvlvqJi4srNYbAwEABQDRv3tykPiYm5qlncc3NeBcWForExETpdwBALFy40KhNTk6OqFWrlgAgwsPDS+1/6dKl0vGJiYlGdS+++KIAIBYsWGBUHhwcLACIf/zjHwKA6Nu3r1H9jBkzBADRtWtXo3LDzHx0dPSTvARERM+Msma8Z8+ebXS1kbnH+vXrhRBCnDlzRiq7fPmy2f4e/RtaHpzxJiKiGic6Oho2NjY4efIkNm3aVOnPP3bsWGg0GpPykJAQ6b8nT55c6m2qDG3+97//me3fx8en1BlmpVKJqVOnAihem2zYARwoXpOdnp6OP/3pT0ZxlKRSqRAeHg4AZu9jrVQqMWnSJLOxPc6WLVsAAO3bty91JlalUiEqKgpA8Vr0kucgt8OHD8PLy0t62NnZISAgAAcOHAAAhIaG4m9/+5vRMXv27MH9+/cBwOy69vfee0+6b+yXX35pVBccHAzAeEY7Ly8PR44cgVarxbhx42Bra4v//ve/RuvEDTPihuMNXF1dAQA3b958klMnIiL8cZXRsmXLIIQw+xg6dCgAwN/fHzY2NgD+eP8tyVD28OHDJ46FiTcREdU4L7zwgpSYTps2rVyblcmpbdu2pZZ7enpK/92mTZsy26SlpZnt33DJcmk6d+4s3cokMTFRKj906BAA4OzZs0bJ5qOPmTNnAijevKw0DRs2RO3atc3G9jiGmF5++WWzbYKDg6UPNiXPQW4FBQW4ffu29DDce1WhUODTTz/Ftm3boFarjY4xxOPj44Pnn3++1H5tbGzQrVu3UuM3lB84cEBKrA8fPozc3Fx06tQJLi4uCAwMREZGBn7++WcAxRvRHTlyBIBp4v3qq68CKL78PTw8HDt37jS7QR4RERkzbKRpeI99HDs7O3To0AEA8Ntvv5nUG8rq1av3xLEw8SYiohpp+vTpsLe3x5UrV7By5cpKfW4nJ6dSy0ve2/Nxbcr6ssDb29tsnZ2dnXQrrNTUVKk8JSUFQHESVzLZfPSRmZkJ4I/bdj3qaZLukjE97hzc3d1NzkFuQUFB0mxGfn4+Ll68iIkTJwIAPvjgA/z4448mx5QnfgCoW7euUXuDLl26wMbGBpmZmfjpp58A/DGbbUjKDf8aZsUPHz6MvLw82NvbSx8SDd544w2MGTMGCoUCmzdvRr9+/eDh4YFGjRrh/fffl5J3IiIy1bZtWwQGBmLTpk3SFVkl6fV6k78FI0eOBFD8OSMvL08qP3fuHNavXw8nJyf06tXriWNh4k1ERDWSt7c3Ro0aBQCYPXu22c3CnhWG2dWwsLAyL6czPMzdUs0wE21t1Go1GjZsiHnz5iEqKgrZ2dkYNGiQ7Im/s7MzWrduDeCPxNrwr7nE2/Bvx44dYWtra9Ln4sWLcf78eURHR+OVV16Bq6srLl26hOXLlyMgIAB///vfZT0HIqLqbs2aNYiIiEBERAS2bt1qUrZmzRqp7aZNm+Dr64vBgwejffv2eP/99zFhwgQMGjQIfn5+JsuzBg8ejAEDBmDfvn1o1aoVxowZg4iICLRp0wa5ublYsWIFdDrdE8fMxJuIiGqsyZMnQ6fTITU1FQsWLCizbcnZ6NzcXLPtMjIyZIuvon7//XezdXl5ebh37x4A49lpLy8vAOYvIa8shpjKus9pbm5uqedQWT788EP4+/sjNTXV5J7Z5Ym/ZH1p8Zdc552dnY3jx4/D1dUVL730EgCgXbt2sLe3x6FDh5Cfn2+SmJemYcOGmDJlCnbt2oV79+7hyJEjeP311wEU73xe2i73RETW6uDBg9iwYQM2bNiAX375BUDxkitDWcldx+vXr48TJ05g6tSpePDgAWJiYrBq1SqcPHkSXbp0MdkrRqFQYNOmTVi4cCFUKhVWrVqFHTt2oEOHDoiPj8ebb75ZoZiZeBMRUY2l0+kwefJkAMCCBQtw586dMtsaXL9+vdQ2Fy5cQHp6uqwxVsSPP/4IIUSpdQcOHJDWKgcEBEjlHTt2BFB8O7Cq3IjLENO+ffvMtklISJDOwdxaeEtSq9XSJnVr167FhQsXpDpD/Ddu3DAqL6moqEi6fLy0+A2J9+HDh7Fv3z4UFBQgKCgISmXxxy5bW1t07NgROTk52Lt3r3RJ+qPru81RKpVo164dtm3bBl9fXwDFm8IRET0r1q9fX+ZVXevXrzdqr9PpMGvWLJw+fRo5OTnIysrChQsX8MUXX6Bfv34m/atUKowdOxZnzpxBbm4uMjIyEBcXh6CgoArHzMSbiIhqtFGjRqFu3brIysrCrFmzzLbTarXw9/cHULwDeGk+/vhji8T4pK5du4YNGzaYlOv1ekRHRwMAmjZtihYtWkh1AwcOhKurKwoKCjBu3DizibuhH0t9wTB48GAAxRvZ/PDDDyb1hYWF0gZvzZs3R/PmzS0Sx+O89dZb8PPzQ1FREWbMmCGV9+jRQ1pDb25X81WrVklr6g27xJfUqVMnqNVqPHz4UPp9PTqbbUiyZ86cicLCQjg6Ohp9kWJQcn3ho2xsbKRL0w1JPRERVU98lyYiohrN3t5eSpC+++67MtsakqR169Zh+fLl0u1Arl+/jmHDhmHLli1wcHCwaLzl4eLigpEjR2L16tXSZfHXr19HeHi4NNM6e/Zso2NcXV2xePFiAMDmzZvRp08fHDt2DHq9HkBxsn327FksWLAAzZo1w/fff2+R2ENDQ6UNwgYNGoQvv/xS2kguKSkJoaGh0u6y8+bNs0gM5aFSqaSN1jZv3iztVFtyPG3atAnvvvsubt++DaB4Q7qlS5dKa6rDwsKk9dwlabVaaef7Y8eOATBNvA0/G+pL7lZfUmBgIEaPHo2EhARkZ2dL5SkpKRg1ahQuXboEAOjdu/eTvwhERFR5nvjO30RERJUoKipKABB+fn5m2xQWFooXXnhBAJAe+/fvN2mXlZUlmjZtKrVRKpXC1dVVABBqtVps2rRJ+Pn5CQAiJibG6NikpCTpuKSkpFLj2L9/v9TGnJiYGLPnExQUJACIKVOmiE6dOklx6XQ6o3ObOnWq2f5XrFghbG1tpbYajUa4ubkJtVpt1MfGjRuNjjO8zkFBQWb7Lq8bN26IZs2aSc9la2srvc6G133JkiWlHlvW61Nehtfxcefy8OFD4eXlJQCIAQMGGNWNHTtWilehUAidTidUKpVUFhwcLDIzM832PW3aNKlt7dq1TeoLCgqEk5OT1GbevHml9mMYj4Y4XF1dhVarNfpdjh079vEvChERVSnOeBMRUY1nY2MjXdJbFkdHRxw8eBDjxo1D/fr1oVKpoFarpVlYw2XSVc3W1hb79u1DdHQ0GjdujLy8PLi4uKB79+74z3/+U+Yl9e+++y7Onz+PCRMmoFWrVtBoNEhPT5cuZR41ahT27NlT6iXScvH29kZiYiIWLlwobSSWk5MDHx8fDBkyBD///DNGjx5tsecvLzs7O4wbNw5A8fKDU6dOSXULFy5EfHw8QkND4enpiQcPHsDJyQnBwcFYt24d9uzZY/aWcYDxeu3S1m6rVCp07ty5zDZA8Wz8jBkz0L17d9SvXx/5+fkoKCiAn58fwsLCsG/fPixcuPCJz52IiCqXQogyFoERERERERER0VPhjDcRERERERGRBTHxJiIiIiIiIrIgJt5EREREREREFsTEm4iIiIiIiMiCmHgTERERERERWRATbyIiIiIiIiILYuJNREREREREZEFMvImIiIiIiIgsiIk3ERERERERkQUx8SYiIiIiIiKyICbeRERERERERBbExJuIiIiIiIjIgph4ExEREREREVkQE28iIiIiIiIiC/o/0ogdyuL3lKcAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot style settings\n",
    "plt.rcParams['axes.labelsize'] = 18\n",
    "plt.rcParams['axes.titlesize'] = 18\n",
    "plt.rcParams['xtick.labelsize'] = 14\n",
    "plt.rcParams['ytick.labelsize'] = 14\n",
    "\n",
    "# Prepare plot\n",
    "fig, ax = plt.subplots(figsize=(10, 6))\n",
    "\n",
    "# Color and marker maps\n",
    "colors = {'pydict': '#c05600', 'pylist': '#e52207', 'pandas': '#59b9de', 'table': '#e5a000'}\n",
    "markers = {'pydict': 's', 'pylist': 'o', 'pandas': 'D', 'table': 'P'}\n",
    "\n",
    "# Main plot\n",
    "handles = []\n",
    "for key, grp in df.groupby('input_data_type'):\n",
    "    h, = ax.plot(\n",
    "        grp['n_rows'], grp['update_times'],\n",
    "        label=key, color=colors[key], marker=markers[key], linestyle='solid'\n",
    "    )\n",
    "    handles.append(h)\n",
    "\n",
    "ax.set_xlabel('Number of Rows')\n",
    "ax.set_ylabel('Update Time (s)')\n",
    "ax.grid(True)\n",
    "\n",
    "# Inset axes\n",
    "ax_in = inset_axes(ax, width='36%', height='36%', loc='upper left',\n",
    "                   bbox_to_anchor=(0.1, -0.03, 1, 1), bbox_transform=ax.transAxes)\n",
    "for key, grp in df.groupby('input_data_type'):\n",
    "    ax_in.plot(\n",
    "        grp['n_rows'], grp['update_times'],\n",
    "        color=colors[key], marker=markers[key], linestyle='solid'\n",
    "    )\n",
    "ax_in.set_xscale('log')\n",
    "ax_in.set_yscale('log')\n",
    "\n",
    "nticks = 9\n",
    "maj_loc = ticker.LogLocator(numticks=nticks)\n",
    "min_loc = ticker.LogLocator(subs=\"all\", numticks=nticks)\n",
    "ax_in.xaxis.set_major_locator(maj_loc)\n",
    "ax_in.xaxis.set_minor_locator(min_loc)\n",
    "\n",
    "# Set the same linestyle and make the spine thicker for visibility\n",
    "ax_in.spines[\"left\"].set_linestyle(\"solid\")\n",
    "ax_in.spines[\"left\"].set_linewidth(2.5)  # Increase the line width for visibility\n",
    "\n",
    "ax_in.tick_params(\n",
    "    axis=\"both\", which=\"major\", length=6, width=1.5, direction=\"out\"\n",
    ")\n",
    "ax_in.tick_params(axis=\"x\", which=\"minor\", length=3, width=1, direction=\"out\")\n",
    "ax_in.tick_params(axis=\"y\", which=\"minor\", length=3, width=1, direction=\"out\")\n",
    "\n",
    "ax_in.set_xlabel('Rows (log)', fontsize=8)\n",
    "ax_in.set_ylabel('Update Time (log)', fontsize=8)\n",
    "ax_in.grid(True)\n",
    "\n",
    "ax.legend(handles=handles, loc='upper center', bbox_to_anchor=(0.12, 0, 1, 1))\n",
    "ax.set_title('Input Update Benchmark for ParquetDB')\n",
    "plt.tight_layout()\n",
    "plt.savefig(os.path.join(bench_dir,\"input-type-update_benchmark.pdf\"))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5740a2e",
   "metadata": {},
   "source": [
    "## 6. Dicussion\n",
    "\n",
    "\n",
    "1. **Preprocessing cost dominates**  \n",
    "   - Every update run spends the bulk of its time converting the input into a PyArrow‐compatible table before the actual write occurs. As a result, raw I/O and compute on the Parquet side are a small fraction of the total.\n",
    "\n",
    "2. **Input format matters**  \n",
    "   - **`pylist` (list of dicts)** is by far the slowest—its untyped, row‐oriented structure forces Python to rebuild every column from scratch, yielding linear growth up to ~30 s at 1 M rows.  \n",
    "   - **`pydict` (dict of column lists)** improves on that by keeping each column contiguous in memory, but still pays a field‐by‐field conversion cost, rising from ~9 s to ~15 s.  \n",
    "   - **`pandas.DataFrame`** and **`pyarrow.Table`** inputs are essentially “zero‐copy” (or very low‐overhead) for Arrow ingestion: they start at ~8.5 s and only tick up to ~9.7 s even at 1 M rows.\n",
    "\n",
    "3. **Key takeaway**  \n",
    "   - For batch updates of large tables, feeding ParquetDB with **columnar inputs** (Pandas or native PyArrow tables) is critical to minimizing pre‑processing latency. Row‑oriented Python structures will quickly become the bottleneck.\n",
    "\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "parquetdb_dev",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.20"
  },
  "nbsphinx": {
   "execute": "never"
  },
  "nbsphinx-thumbnail": {
   "tooltip": "In this example, we benchmark the performance of varying input formats (pylist, pydict, pandas.DataFrame, pyarrow.Table) for updating ParquetDB"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
